#!/bin/env ruby

##
#=Classe Score
#
#La classe Score sert à calculer le score du joueur en fonction de plusieurs éléments de sa partie( le nombre de monstre combattu, le nombre d'or ramassé, ...).
#
#=Attributs :
#[@score] Score total du joueur
#[@nbMonstreCombattus] Nombre d'Ennemi combattus
#[@nbOrTotal] Nombre d'or total du Heros
#[@nbDeplacementEffectue] Nombre de déplacement effectué au cours de la partie
#[@nbNourritureUtilisee] Nombre de Nourriture consommé
#[@nbPotionUtilisee] Nombre de Potion utilisé.
#
class Score
	@score
	@nbMonstreCombattus
	@nbOrTotal
	@nbDeplacementEffectue
	@nbNourritureUtilisee
	@nbPotionUtilisee
	 
	private_class_method :new
	# constructeur
	def Score.creer
		new()
	end
	
  #Initialisation des variables d'instance
	def initialize()
		@score = 0
		@nbMonstreCombattus = 0
		@nbOrTotal = 0
		@nbDeplacementEffectue = 0
		@nbNourritureUtilisee = 0
		@nbPotionUtilisee = 0
	end
	
	# Getter
	# ------
    
    #Retourne @score
	def getScore()
		return @score
	end
	
    #retourne @nbMonstreCombattus
	def getNbMonstreCombattus()
		return @nbMonstreCombattus
	end
	
    #retourne @nbOrTotal
	def getNbOr()
		return @nbOrTotal	
	end
	
    #Retourne @nbDeplacementEffectue
	def getNbDeplacementEffectue()
		return @nbDeplacementEffectue
	end
	
    #Retourne @nbNourritureUtilisee
	def getNbNourritureUtilisee()
		return @nbNourritureUtilisee
	end
	
    #Retourne @nbPotionUtilisee
	def getNbPotionUtilisee()
		return @nbPotionUtilisee
	end
	
	# méthode qui calcule le score total selon une formule et le renvoi
	def calculScore
		scoreNbMonstreCombattus		= @nbMonstreCombattus
		scoreOrTotal			= @nbOrTotal
		scoreDeplacementEffectue	= @nbDeplacementEffectue
		scoreNourritureUtilisee		= @nbNourritureUtilisee
		scorePotionUtilisee		= @nbPotionUtilisee
		
		@score = scoreNbMonstreCombattus*10 + scoreOrTotal + scoreDeplacementEffectue - scoreNourritureUtilisee - scorePotionUtilisee
		
		return @score 
	end
	
    #Incremente la variable @nbMonstreCombattus
	def augmenterNbMonstreCombattus()
		@nbMonstreCombattus += 1
	end
	
    #Incremente la variable @nbOrTotal
	def augmenterNbOr(gain)
		@nbOrTotal += gain	
	end
	
    #Incremente la variable @nbDeplacementEffectue
	def augmenterNbDeplacementEffectue()
		@nbDeplacementEffectue += 1
	end
	
    #Incremente la variable @nbNourritureUtilisee
	def augmenterNbNourritureUtilisee()
		@nbNourritureUtilisee += 1
	end
	
    #Incremente la variable @nbPotionUtilisee
	def augmenterNbPotionUtilisee()
		@nbPotionUtilisee =+1
	end
end
